package de.fhffm.gaertnerei.gui;
/**
 * @author Riad Hassani & Kerim Septa 
 */

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import de.fhffm.gaertnerei.tabellenModelle.PflanzeTableModel;

@SuppressWarnings("serial")
public class PflanzenTabelle extends JFrame implements ActionListener {

	private JButton buttonOk = new JButton("OK");
	private JButton buttonAbbrechen = new JButton("Abbrechen");
	
	
	private JTable table = new JTable();
	
	private JScrollPane scrollPane = new JScrollPane(table);
	
	private JPanel buttonPanel = new JPanel();
	
	private String ausgewaehlteZeile = null;

	private JTextField textfeldPflanze;

	public PflanzenTabelle(JTextField textfeldPflanze){
		
		this.textfeldPflanze =  textfeldPflanze;
		tabelleAnordnen();
		bestandteileAnordnen();
		ereignissensorenAnmeldung();
		erstelleFenster();
	
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		Object obj = e.getSource();
		
		if(obj == buttonOk){
			
			if(doHohleAusgewaehlteZeile()){
				textfeldPflanze.setText(ausgewaehlteZeile);
				dispose();
			} else {
				System.out.println("Fehler beim hohlen der Pflanze");
			}
		}
		
		if(obj == buttonAbbrechen){
			dispose();
		}
	}
	
	private void erstelleFenster() {
		
		setTitle("Pflanzen");
		setSize(800,600);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setResizable(false);
		pack();
		setVisible(true);
		
	}

	private void ereignissensorenAnmeldung(){
		buttonOk.addActionListener(this);
		buttonAbbrechen.addActionListener(this);
	}
	
	private void tabelleAnordnen(){
		
		table.setModel(new PflanzeTableModel());
		scrollPane.setPreferredSize(new Dimension(600,400));
	}
	
	private void bestandteileAnordnen(){
		
		GroupLayout PflanzenTabelle = new GroupLayout(getContentPane());
		getContentPane().setLayout(PflanzenTabelle);
		
		PflanzenTabelle.setAutoCreateGaps(true);
		PflanzenTabelle.setAutoCreateContainerGaps(true);
		scrollPane.setPreferredSize(new Dimension(600,400));
		
		PflanzenTabelle.setVerticalGroup(PflanzenTabelle.createSequentialGroup().
				addComponent(scrollPane).
				addComponent(buttonPanel)
		);

		PflanzenTabelle.setHorizontalGroup(PflanzenTabelle.createParallelGroup().
				addComponent(scrollPane).
				addComponent(buttonPanel)
		);		

		buttonPanelAnordnen();
	}
	
	private void buttonPanelAnordnen(){
		
		buttonPanel.setLayout(new FlowLayout());
		buttonPanel.add(buttonOk);
		buttonPanel.add(buttonAbbrechen);
	}
	
	private boolean doHohleAusgewaehlteZeile() {
		
		int ausgwZeile = table.getSelectedRow();
		
		try{
			
		ausgewaehlteZeile = (String) table.getModel().getValueAt(ausgwZeile, 1);
		
		}catch(IllegalArgumentException ia){
			
			System.out.println("Bitte eine Pflanze auswählen!");
			JOptionPane.showMessageDialog(null,"Bitte eine Pflanze Auswählen!","Fehler",JOptionPane.ERROR_MESSAGE);
			return false;
			
		}
		
		return true;
		
	}
}